package com.gl.glcourses.model
{
	import com.gl.glcourses.events.GLCoursesEvent;
	import com.gl.glcourses.model.constants.Constants;
	import com.gl.glcourses.vos.EdicionCurso;
	import com.gl.glcourses.vos.Feedback;
	import com.gl.glcourses.vos.Participante;
	import com.gl.glcourses.vos.PreguntaFeedback;
	import com.gl.glcourses.vos.Usuario;
	
	import mx.collections.ArrayCollection;
	import mx.collections.ArrayList;
	import mx.controls.Alert;
	
	public class FeedbackPanelModel extends PresentationModel
	{
		// Atributos injectados
		[Bindable]
		public var edicionCursoJSP:EdicionCurso;
		[Bindable]
		public var seleccionar:Boolean = false;
		[Bindable]
		public var feedback:Feedback = new Feedback();
		[Bindable]
		public var usuarioLogeado:Usuario;		
		[Bindable]
		public var edicionCursoSeleccionado:EdicionCurso
		[Bindable]
		public var respuestas:ArrayCollection
		[Bindable]
		public var clean:Boolean=false;
		[Bindable]
		public var cleanCurso:Boolean=false;
		
		[Bindable]
		public var arrayContenido:ArrayCollection= new ArrayCollection;
		[Bindable]
		public var arrayInstructor:ArrayCollection= new ArrayCollection;
		[Bindable]
		public var arrayCurso:ArrayCollection= new ArrayCollection;
		[Bindable]
		public var arrayDuracion:ArrayCollection= new ArrayCollection;
		
		public function initContenido():void{
			var pregunta1:PreguntaFeedback = new PreguntaFeedback();
			pregunta1.id = 1;
			pregunta1.pregunta = Constants.getString( "reviewfeed.question1" );
			var pregunta2:PreguntaFeedback = new PreguntaFeedback();
			pregunta2.id = 2;
			pregunta2.pregunta = Constants.getString( "reviewfeed.question2" );
			var pregunta3:PreguntaFeedback = new PreguntaFeedback();
			pregunta3.id = 3;
			pregunta3.pregunta = Constants.getString( "reviewfeed.question3" );
			var pregunta4:PreguntaFeedback = new PreguntaFeedback();
			pregunta4.id = 4;
			pregunta4.pregunta =Constants.getString( "reviewfeed.question4" );
			var pregunta5:PreguntaFeedback = new PreguntaFeedback();
			pregunta5.id = 5;
			pregunta5.pregunta = Constants.getString( "reviewfeed.question5" );
			var pregunta6:PreguntaFeedback = new PreguntaFeedback();
			pregunta6.id = 6;
			pregunta6.pregunta = Constants.getString( "reviewfeed.question6" );
			
			arrayContenido.addItem(pregunta1);
			arrayContenido.addItem(pregunta2);
			arrayContenido.addItem(pregunta3);
			arrayContenido.addItem(pregunta4);
			arrayContenido.addItem(pregunta5);
			arrayContenido.addItem(pregunta6);
		}
		
		public function initInstructor():void{
			var pregunta7:PreguntaFeedback = new PreguntaFeedback();
			pregunta7.id = 7;
			pregunta7.pregunta = Constants.getString( "reviewfeed.question7" );
			var pregunta8:PreguntaFeedback = new PreguntaFeedback();
			pregunta8.id = 8;
			pregunta8.pregunta = Constants.getString( "reviewfeed.question8" );
			var pregunta9:PreguntaFeedback = new PreguntaFeedback();
			pregunta9.id = 9;
			pregunta9.pregunta = Constants.getString( "reviewfeed.question9" );
			var pregunta10:PreguntaFeedback = new PreguntaFeedback();
			pregunta10.id = 10;
			pregunta10.pregunta = Constants.getString( "reviewfeed.question10" );
			var pregunta11:PreguntaFeedback = new PreguntaFeedback();
			pregunta11.id = 11;
			pregunta11.pregunta = Constants.getString( "reviewfeed.question11" );
			var pregunta12:PreguntaFeedback = new PreguntaFeedback();
			pregunta12.id = 12;
			pregunta12.pregunta = Constants.getString( "reviewfeed.question12" );
			
			arrayInstructor.addItem(pregunta7);
			arrayInstructor.addItem(pregunta8);
			arrayInstructor.addItem(pregunta9);
			arrayInstructor.addItem(pregunta10);
			arrayInstructor.addItem(pregunta11);
			arrayInstructor.addItem(pregunta12);
		}
		
		public function initCurso():void{
			var pregunta13:PreguntaFeedback = new PreguntaFeedback();
			pregunta13.id = 13;
			pregunta13.pregunta = Constants.getString( "reviewfeed.question13" );
			
			arrayCurso.addItem(pregunta13);
		}
		
		public function initDuracion():void{
			var pregunta14:PreguntaFeedback = new PreguntaFeedback();
			pregunta14.id = 14;
			pregunta14.pregunta = Constants.getString( "reviewfeed.choose" );
			
			arrayDuracion.addItem(pregunta14);
		}
		
		public function crearFeedback():void
		{		
			var event:GLCoursesEvent = new GLCoursesEvent( GLCoursesEvent.CREAR_FEEDBACK );
			event.feedback = new Feedback();			
			event.feedback = this.feedback;
			event.feedback.participante = getParticipante();
			dispatch( event );
			limpiar();			
		}
		
		public function validar():Boolean{
			return true;
		}
		
		public function limpiar():void{
			
			feedback = new Feedback();
			clean=true;
			
			arrayContenido.refresh();
			arrayInstructor.refresh();
			arrayCurso.refresh();
			arrayDuracion.refresh();
			feedback.pregunta15 = "";
			feedback.pregunta16 = "";      
			feedback.pregunta17 = "";
		}
		
		public function getParticipante():Participante{
			var participante:Participante;
			for each(var participante2:Participante in edicionCursoSeleccionado.participantes){
				if(participante2.usuario.id == usuarioLogeado.id){
					participante=participante2;
				}
			}			
			return participante;
		}
		
		public function responderTabla (preguntaFeedback:PreguntaFeedback):void{
			
			feedback["pregunta"+preguntaFeedback.id as String] = preguntaFeedback.respuesta;
		}
		
		protected function btn():void
		{
			var event:GLCoursesEvent = new GLCoursesEvent( GLCoursesEvent.PREPARAR_FEEDBACK_CURSO);
			event.edicionCursoSeleccionado = edicionCursoSeleccionado;
			dispatchEvent( event );
		}
		
		public function set edicionCursoMail(value:EdicionCurso):void
		{
			this.edicionCursoJSP = value;
			this.edicionCursoSeleccionado = value;
		}
		
	}
}